#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

//#define Mul(x,y) ++x*++y
//
//int main()
//{
//	int a = 1;
//	int b = 2;
//	int c = 3;
//
//	printf("%d", Mul(a + b, b + c));
//
//	return 0;
//}


//#define a 10
//
//void foo();
//
//int main()
//{
//	printf("%d..", a);
//	foo();
//	printf("%d", a);
//
//	return 0;
//}
//
//void foo() 
//{
//	#undef a
//	#define a 50
//}

//long long test(long long n)
//{
//	if (1 == n)
//		return 1;
//
//	if (2 == n)
//		return 2;
//
//	return (test(n - 1) << 1) + test(n - 2);
//}
//
//int main()
//{
//	long long n = 100;
//
//	for (long long i = 1; i <= n; ++i)
//	{
//		printf("%lld ", test(i));
//
//		if (0 == i % 10)
//			putchar('\n');
//	}
//
//	return 0;
//}

//int main()
//{
//	printf("%d\n", sizeof(long long));
//
//	return 0;
//}

//#include <stdlib.h>
//#include <assert.h>
//int main()
//{
//    int n = 0;
//    while (scanf("%d", &n) != EOF)
//    {
//        while (n--)
//        {
//            int k = 0;
//            scanf("%d", &k);
//
//            int* arr = (int*)calloc(1000001, sizeof(int));
//            assert(arr);
//
//            arr[1] = 1, arr[2] = 2;
//
//            if (1 == k || 2 == k)
//                printf("%d\n", arr[k]);
//
//            for (int i = 3; i <= k; ++i)
//            {
//                arr[i] = ((arr[i - 1] << 1) + arr[i - 2]) % 32767;// >> 15 -1
//            }
//            printf("%d\n", arr[k]);
//
//            free(arr);
//            arr = NULL;
//        }
//    }
//
//    return 0;
//}

#include <string.h>
#include <ctype.h>
int main()
{
    char arr[10001] = "1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][";

    int cnt[4] = { 0 };
    for (int i = 0; i < strlen(arr); ++i)
    {
        if (isalpha(arr[i]))
            cnt[0]++;
        else if (isblank(arr[i]))
            cnt[1]++;
        else if (isdigit(arr[i]))
            cnt[2]++;
        else
            cnt[3]++;
    }

    for (int i = 0; i < 4; ++i)
    {
        printf("%d\n", cnt[i]);
    }

    return 0;
}